package com.hh.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hh.entity.domain.Thumb;
import com.hh.entity.dto.thumb.DoThumbRequest;

import javax.servlet.http.HttpServletRequest;

/**
 * @author hanhui
 * @description 针对表【user_like】的数据库操作Service
 * @createDate 2025-06-01 18:29:10
 */
public interface ThumbService extends IService<Thumb> {
    /**
     * 点赞
     * <p>
     * 该方法用于处理点赞请求，根据传入的点赞请求和请求信息，对指定用户和博客进行点赞操作。
     * </p>
     *
     * @param doThumbRequest 点赞请求，包含点赞的相关信息
     * @param request        HTTP请求，包含用户信息等
     * @return 操作结果，成功返回true，失败返回false
     */
    Boolean doThumb(DoThumbRequest doThumbRequest, HttpServletRequest request);

    /**
     * 取消点赞
     * <p>
     * 该方法用于处理取消点赞请求，根据传入的取消点赞请求和请求信息，对指定用户和博客取消点赞操作。
     * </p>
     *
     * @param doThumbRequest 取消点赞请求，包含取消点赞的相关信息
     * @param request        HTTP请求，包含用户信息等
     * @return 操作结果，成功返回true，失败返回false
     */
    Boolean unThumb(DoThumbRequest doThumbRequest, HttpServletRequest request);

    /**
     * 判断用户是否点赞
     * <p>
     * 该方法用于判断指定用户是否对指定博客进行了点赞操作。
     * </p>
     *
     * @param blogId 博客ID，用于指定需要判断的博客
     * @param userId 用户ID，用于指定需要判断的用户
     * @return 如果用户点赞了返回true，否则返回false
     */
    Boolean hasThumb(Long blogId, Long userId);
}
